/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

function logString (value, delay = 10) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(value)
    }, delay)
  })
}

const a = logString('hello')
const b = logString('lagou')
const c = logString('I ♥ U')

Promise.all([a, b, c]).then(data => {
  let res = data.reduce((pre, cur) => {
    return pre + cur
  })
  console.log(res)
}).catch(err => { throw err })